home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / X11R4 / cmds / X / ddx / sprite.X11R3 / hdr / cg6thc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-11-03  |  10.2 KB  |  307 lines

  1. /*
  2.  * @(#)cg6thc.h 1.4 89/03/30 SMI
  3.  */
  4.  
  5. /*
  6.  * Copyright 1989, Sun Microsystems, Inc.
  7.  */
  8.  
  9. #ifndef    pixrect_cg6thc_h
  10. #define    pixrect_cg6thc_h
  11.  
  12. /*
  13.  * TEC Hardware Configuration registers.
  14.  *
  15.  * Hardware register offsets from base address. These offsets are
  16.  * intended to be added to a pointer-to-integer whose value is the
  17.  * base address of the CG6 memory mapped register area.
  18.  */
  19.  
  20. /* hardware configuration registers */
  21.  
  22. #define L_THC_HCHS        ( 0x800 / sizeof(int) )
  23. #define L_THC_HCHSDVB        ( 0x804 / sizeof(int) )
  24. #define L_THC_HCHD        ( 0x808 / sizeof(int) )
  25. #define L_THC_HCVS        ( 0x80C / sizeof(int) )
  26. #define L_THC_HCVD        ( 0x810 / sizeof(int) )
  27. #define L_THC_HCREFRESH        ( 0x814 / sizeof(int) )
  28. #define L_THC_HCMISC        ( 0x818 / sizeof(int) )
  29.  
  30. #define    THC_HCMISC_REV_SHIFT        16
  31. #define    THC_HCMISC_REV_MASK        15
  32. #define THC_HCMISC_RESET        0x1000
  33. #define    THC_HCMISC_VIDEO        0x0400
  34. #define    THC_HCMISC_SYNC            0x0200
  35. #define    THC_HCMISC_VSYNC        0x0100
  36. #define    THC_HCMISC_SYNCEN        0x0080
  37. #define    THC_HCMISC_CURSOR_RES        0x0040
  38. #define    THC_HCMISC_INTEN        0x0020
  39. #define    THC_HCMISC_INT            0x0010
  40.  
  41. #define    THC_HCMISC_INIT            0x009f
  42.  
  43. #define    thc_set_video(thc, on) \
  44.     ((thc)->l_thc_hcmisc = \
  45.         (thc)->l_thc_hcmisc & ~THC_HCMISC_VIDEO | \
  46.         ((on) ? THC_HCMISC_VIDEO : 0))
  47.  
  48. #define    thc_get_video(thc) \
  49.     ((thc)->l_thc_hcmisc & THC_HCMISC_VIDEO)
  50.  
  51. #define thc_int_enable(thc) \
  52.     ((thc)->l_thc_hcmisc |= THC_HCMISC_INTEN)
  53.  
  54. #define thc_int_disable(thc) \
  55.     ((thc)->l_thc_hcmisc = \
  56.         (thc)->l_thc_hcmisc & ~THC_HCMISC_INTEN | THC_HCMISC_INT)
  57.  
  58. #define    thc_int_pending(thc) \
  59.     ((thc)->l_thc_hcmisc & THC_HCMISC_INT)
  60.  
  61. /* cursor address register */
  62. #define L_THC_ADDRESS        ( 0x8FC / sizeof(int) )
  63.  
  64. /* cursor data registers, plane A */
  65. #define L_THC_CURSORA00        ( 0x900 / sizeof(int) )
  66. #define L_THC_CURSORA01        ( 0x904 / sizeof(int) )
  67. #define L_THC_CURSORA02        ( 0x908 / sizeof(int) )
  68. #define L_THC_CURSORA03        ( 0x90C / sizeof(int) )
  69. #define L_THC_CURSORA04        ( 0x910 / sizeof(int) )
  70. #define L_THC_CURSORA05        ( 0x914 / sizeof(int) )
  71. #define L_THC_CURSORA06        ( 0x918 / sizeof(int) )
  72. #define L_THC_CURSORA07        ( 0x91C / sizeof(int) )
  73. #define L_THC_CURSORA08        ( 0x920 / sizeof(int) )
  74. #define L_THC_CURSORA09        ( 0x924 / sizeof(int) )
  75. #define L_THC_CURSORA10        ( 0x928 / sizeof(int) )
  76. #define L_THC_CURSORA11        ( 0x92C / sizeof(int) )
  77. #define L_THC_CURSORA12        ( 0x930 / sizeof(int) )
  78. #define L_THC_CURSORA13        ( 0x934 / sizeof(int) )
  79. #define L_THC_CURSORA14        ( 0x938 / sizeof(int) )
  80. #define L_THC_CURSORA15        ( 0x93C / sizeof(int) )
  81. #define L_THC_CURSORA16        ( 0x940 / sizeof(int) )
  82. #define L_THC_CURSORA17        ( 0x944 / sizeof(int) )
  83. #define L_THC_CURSORA18        ( 0x948 / sizeof(int) )
  84. #define L_THC_CURSORA19        ( 0x94C / sizeof(int) )
  85. #define L_THC_CURSORA20        ( 0x950 / sizeof(int) )
  86. #define L_THC_CURSORA21        ( 0x954 / sizeof(int) )
  87. #define L_THC_CURSORA22        ( 0x958 / sizeof(int) )
  88. #define L_THC_CURSORA23        ( 0x95C / sizeof(int) )
  89. #define L_THC_CURSORA24        ( 0x960 / sizeof(int) )
  90. #define L_THC_CURSORA25        ( 0x964 / sizeof(int) )
  91. #define L_THC_CURSORA26        ( 0x968 / sizeof(int) )
  92. #define L_THC_CURSORA27        ( 0x96C / sizeof(int) )
  93. #define L_THC_CURSORA28        ( 0x970 / sizeof(int) )
  94. #define L_THC_CURSORA29        ( 0x974 / sizeof(int) )
  95. #define L_THC_CURSORA30        ( 0x978 / sizeof(int) )
  96. #define L_THC_CURSORA31        ( 0x97C / sizeof(int) )
  97.  
  98. /* cursor data registers, plane B */
  99. #define L_THC_CURSORB00        ( 0x980 / sizeof(int) )
  100. #define L_THC_CURSORB01        ( 0x984 / sizeof(int) )
  101. #define L_THC_CURSORB02        ( 0x988 / sizeof(int) )
  102. #define L_THC_CURSORB03        ( 0x98C / sizeof(int) )
  103. #define L_THC_CURSORB04        ( 0x990 / sizeof(int) )
  104. #define L_THC_CURSORB05        ( 0x994 / sizeof(int) )
  105. #define L_THC_CURSORB06        ( 0x998 / sizeof(int) )
  106. #define L_THC_CURSORB07        ( 0x99C / sizeof(int) )
  107. #define L_THC_CURSORB08        ( 0x9A0 / sizeof(int) )
  108. #define L_THC_CURSORB09        ( 0x9A4 / sizeof(int) )
  109. #define L_THC_CURSORB10        ( 0x9A8 / sizeof(int) )
  110. #define L_THC_CURSORB11        ( 0x9AC / sizeof(int) )
  111. #define L_THC_CURSORB12        ( 0x9B0 / sizeof(int) )
  112. #define L_THC_CURSORB13        ( 0x9B4 / sizeof(int) )
  113. #define L_THC_CURSORB14        ( 0x9B8 / sizeof(int) )
  114. #define L_THC_CURSORB15        ( 0x9BC / sizeof(int) )
  115. #define L_THC_CURSORB16        ( 0x9C0 / sizeof(int) )
  116. #define L_THC_CURSORB17        ( 0x9C4 / sizeof(int) )
  117. #define L_THC_CURSORB18        ( 0x9C8 / sizeof(int) )
  118. #define L_THC_CURSORB19        ( 0x9CC / sizeof(int) )
  119. #define L_THC_CURSORB20        ( 0x9D0 / sizeof(int) )
  120. #define L_THC_CURSORB21        ( 0x9D4 / sizeof(int) )
  121. #define L_THC_CURSORB22        ( 0x9D8 / sizeof(int) )
  122. #define L_THC_CURSORB23        ( 0x9DC / sizeof(int) )
  123. #define L_THC_CURSORB24        ( 0x9E0 / sizeof(int) )
  124. #define L_THC_CURSORB25        ( 0x9E4 / sizeof(int) )
  125. #define L_THC_CURSORB26        ( 0x9E8 / sizeof(int) )
  126. #define L_THC_CURSORB27        ( 0x9EC / sizeof(int) )
  127. #define L_THC_CURSORB28        ( 0x9F0 / sizeof(int) )
  128. #define L_THC_CURSORB29        ( 0x9F4 / sizeof(int) )
  129. #define L_THC_CURSORB30        ( 0x9F8 / sizeof(int) )
  130. #define L_THC_CURSORB31        ( 0x9FC / sizeof(int) )
  131.  
  132. /*
  133.  * THC Cursor ADDRESS register bits.
  134.  */
  135.  
  136. struct l_thc_cursor {
  137.     unsigned    l_thc_cursor_x : 16;    /* X co-ordinate */
  138.     unsigned    l_thc_cursor_y : 16;    /* Y co-ordinate */
  139. };
  140.  
  141. /*
  142.  * THC Video Timing registers bits.
  143.  */
  144.  
  145. struct l_thc_hchs {
  146.     unsigned    : 9;            /* not used */
  147.     unsigned    l_thc_hchs_hss : 7;    /* hor. sync start */
  148.     unsigned    : 9;            /* not used */
  149.     unsigned    l_thc_hchs_hse : 7;    /* hor. sync end */
  150. };
  151.  
  152. struct l_thc_hchsdvs {
  153.     unsigned    : 9;            /* not used */
  154.     unsigned    l_thc_hchsdvs_hss : 7;    /* hor. sync end DVS */
  155.     unsigned    : 5;            /* not used */
  156.     unsigned    l_thc_hchsdvs_hse : 11;    /* current vert. line */
  157. };
  158.  
  159. struct l_thc_hchd {
  160.     unsigned    : 9;            /* not used */
  161.     unsigned    l_thc_hchd_hds : 7;    /* hor. display start */
  162.     unsigned    : 9;            /* not used */
  163.     unsigned    l_thc_hchd_hde : 7;    /* hor. display end */
  164. };
  165.  
  166. struct l_thc_hcvs {
  167.     unsigned    : 5;            /* not used */
  168.     unsigned    l_thc_hcvs_vss : 11;    /* vert. sync start */
  169.     unsigned    : 5;            /* not used */
  170.     unsigned    l_thc_hcvs_hse : 11;    /* vert. sync end */
  171. };
  172.  
  173. struct l_thc_hcvd {
  174.     unsigned    : 5;            /* not used */
  175.     unsigned    l_thc_hcvd_vds : 11;    /* vert. display start */
  176.     unsigned    : 5;            /* not used */
  177.     unsigned    l_thc_hcvd_hde : 11;    /* vert. display end */
  178. };
  179.  
  180. struct l_thc_hcr {
  181.     unsigned    : 21;            /* not used */
  182.     unsigned    l_thc_hcr_clk : 11;    /* refresh counter */
  183. };
  184.  
  185. /*
  186.  * THC HCMISC register bits.
  187.  */
  188.  
  189. typedef enum {
  190.         L_THC_HCMISC_VID_BLANK, L_THC_HCMISC_VID_DISPLAY
  191. } l_thc_hcmisc_vid_t;
  192.  
  193. typedef enum {
  194.     L_THC_HCMISC_INTR_IGNORE, L_THC_HCMISC_INTR_CLEAR,
  195.     L_THC_HCMISC_INTR_SET
  196. } l_thc_hcmisc_intr_t;
  197.  
  198. struct l_thc_hcmisc {
  199.    unsigned                                 : 12;      /* unused */
  200.    unsigned             l_thc_hcmisc_rev    : 4;       /* chip revision */
  201.    unsigned                                 : 3;       /* unused */
  202.    unsigned             l_thc_hcmisc_reset  : 1;       /* reset */
  203.    unsigned                                 : 1;       /* unused */
  204.    l_thc_hcmisc_vid_t   l_thc_hcmisc_vid    : 1;       /* enable video */
  205.    unsigned             l_thc_hcmisc_sync   : 1;       /* sync */
  206.    unsigned             l_thc_hcmisc_vsync  : 1;       /* vsync */
  207.    unsigned             l_thc_hcmisc_ensync : 1;       /* enable/disable sync */
  208.    unsigned             l_thc_hcmisc_cures  : 1;       /* cursor resolution */
  209.    l_thc_hcmisc_intr_t  l_thc_hcmisc_intr   : 2;       /* enable interrupt */
  210.    unsigned             l_thc_hcmisc_cycles : 4;       /* cycles before xfer */
  211.  };
  212.      
  213. /*
  214.  * define THC registers as a structure.
  215.  */
  216.  
  217. struct thc {
  218.     u_int    l_thc_pad_0[512-0];
  219. #ifdef tec_structures
  220.     struct l_thc_hchs    l_thc_hchs;        /* 512 */
  221.     struct l_thc_hchsdvs    l_thc_hchsdvs;        /* 513 */
  222.     struct l_thc_hchd    l_thc_hchd;        /* 514 */
  223.     struct l_thc_hcvs    l_thc_hcvs;        /* 515 */
  224.     struct l_thc_hcvd    l_thc_hcvd;        /* 516 */
  225.     struct l_thc_hcr    l_thc_hcr;        /* 517 */
  226.     struct l_thc_hcmisc    l_thc_hcmisc;        /* 518 */
  227.     u_int    l_thc_pad_519[575-519];
  228.     struct l_thc_cursor    l_thc_cursor;        /* 575 */
  229. #else
  230.     u_int     l_thc_hchs;                /* 512 */
  231.     u_int     l_thc_hchsdvs;                /* 513 */
  232.     u_int     l_thc_hchd;                /* 514 */
  233.     u_int     l_thc_hcvs;                /* 515 */
  234.     u_int     l_thc_hcvd;                /* 516 */
  235.     u_int     l_thc_hcr;                /* 517 */
  236.     u_int     l_thc_hcmisc;                /* 518 */
  237.     u_int    l_thc_pad_519[575-519];
  238.     u_int     l_thc_cursor;                /* 575 */
  239. #endif
  240.     u_int    l_thc_cursora00;            /* 576 */
  241.     u_int    l_thc_cursora01;            /* 577 */
  242.     u_int    l_thc_cursora02;            /* 578 */
  243.     u_int    l_thc_cursora03;            /* 579 */
  244.     u_int    l_thc_cursora04;            /* 580 */
  245.     u_int    l_thc_cursora05;            /* 581 */
  246.     u_int    l_thc_cursora06;            /* 582 */
  247.     u_int    l_thc_cursora07;            /* 583 */
  248.     u_int    l_thc_cursora08;            /* 584 */
  249.     u_int    l_thc_cursora09;            /* 585 */
  250.     u_int    l_thc_cursora10;            /* 586 */
  251.     u_int    l_thc_cursora11;            /* 587 */
  252.     u_int    l_thc_cursora12;            /* 588 */
  253.     u_int    l_thc_cursora13;            /* 589 */
  254.     u_int    l_thc_cursora14;            /* 590 */
  255.     u_int    l_thc_cursora15;            /* 591 */
  256.     u_int    l_thc_cursora16;            /* 592 */
  257.     u_int    l_thc_cursora17;            /* 593 */
  258.     u_int    l_thc_cursora18;            /* 594 */
  259.     u_int    l_thc_cursora19;            /* 595 */
  260.     u_int    l_thc_cursora20;            /* 596 */
  261.     u_int    l_thc_cursora21;            /* 597 */
  262.     u_int    l_thc_cursora22;            /* 598 */
  263.     u_int    l_thc_cursora23;            /* 599 */
  264.     u_int    l_thc_cursora24;            /* 600 */
  265.     u_int    l_thc_cursora25;            /* 601 */
  266.     u_int    l_thc_cursora26;            /* 602 */
  267.     u_int    l_thc_cursora27;            /* 603 */
  268.     u_int    l_thc_cursora28;            /* 604 */
  269.     u_int    l_thc_cursora29;            /* 605 */
  270.     u_int    l_thc_cursora30;            /* 606 */
  271.     u_int    l_thc_cursora31;            /* 607 */
  272.     u_int    l_thc_cursorb00;            /* 608 */
  273.     u_int    l_thc_cursorb01;            /* 609 */
  274.     u_int    l_thc_cursorb02;            /* 610 */
  275.     u_int    l_thc_cursorb03;            /* 611 */
  276.     u_int    l_thc_cursorb04;            /* 612 */
  277.     u_int    l_thc_cursorb05;            /* 613 */
  278.     u_int    l_thc_cursorb06;            /* 614 */
  279.     u_int    l_thc_cursorb07;            /* 615 */
  280.     u_int    l_thc_cursorb08;            /* 616 */
  281.     u_int    l_thc_cursorb09;            /* 617 */
  282.     u_int    l_thc_cursorb10;            /* 618 */
  283.     u_int    l_thc_cursorb11;            /* 619 */
  284.     u_int    l_thc_cursorb12;            /* 620 */
  285.     u_int    l_thc_cursorb13;            /* 621 */
  286.     u_int    l_thc_cursorb14;            /* 622 */
  287.     u_int    l_thc_cursorb15;            /* 623 */
  288.     u_int    l_thc_cursorb16;            /* 624 */
  289.     u_int    l_thc_cursorb17;            /* 625 */
  290.     u_int    l_thc_cursorb18;            /* 626 */
  291.     u_int    l_thc_cursorb19;            /* 627 */
  292.     u_int    l_thc_cursorb20;            /* 628 */
  293.     u_int    l_thc_cursorb21;            /* 629 */
  294.     u_int    l_thc_cursorb22;            /* 630 */
  295.     u_int    l_thc_cursorb23;            /* 631 */
  296.     u_int    l_thc_cursorb24;            /* 632 */
  297.     u_int    l_thc_cursorb25;            /* 633 */
  298.     u_int    l_thc_cursorb26;            /* 634 */
  299.     u_int    l_thc_cursorb27;            /* 635 */
  300.     u_int    l_thc_cursorb28;            /* 636 */
  301.     u_int    l_thc_cursorb29;            /* 637 */
  302.     u_int    l_thc_cursorb30;            /* 638 */
  303.     u_int    l_thc_cursorb31;            /* 639 */
  304. };
  305.  
  306. #endif    pixrect_cg6thc_h
  307.